#ifndef GROUP_H_
#define GROUP_H_

#include <wx/string.h>
#include "Buddy.h"
#include <vector>
#include "database/DBType.h"

namespace Impp {

#define GROUP_NOFLAG 				0x000000
#define GROUP_COLLAPSED				0x000001
#define GROUP_NOT_IN_LIST			0x000002
#define GROUP_ROOT					0x000004

class Buddy;

class Group
{
private:
	db_id id;
	wxString screenname;
	wxString customname;
	std::vector <Buddy*> buddies;
	int flags;

public:
	Group(db_id id, wxString screenname, const int & flags);
	virtual ~Group();

	db_id getId();
	wxString getName();
	void addBuddy(Buddy* buddy);
	void removeBuddy(Buddy* buddy);
	size_t getSize();
	size_t getOnlineSize();

	void setFlag(int flag);
	void clearFlag(int flag);
	bool hasFlag(int flag);



};

}

#endif /*GROUP_H_*/
